Skip to main content

තණකොළ - වතුර - අහස

දැන් අපේ walking sim එක ගොඩක් දුරට ඉවරයි, ඒත් අපිට ඒක තවත් ලස්සන කරන්න පුලුවන්.

ඒ වගේම Godot වල තවත් වැදගත් දේවල් ටිකක් ගැනත් කියන්න තියෙනවා. addons, shaders වගේ දේවල්.
තණකොළ, වතුර, අහස හදන ගමන් මම ඒවා පැහැදිලි කරන්නම්.

renderer එක 'Forward+' කරන්න ⚠

Grass තණකොළ, වතුර දාන්න කලින්, renderer එක නම් 'Forward+' කරන්න වෙනවා. එහෙම නැත්නම් shaders හරියට වැඩ කරන එකක් නෑ.
කලින් ඉදන්ම 'Forward+' නෙවෙයි නම් තිබුණෙ, 'Forward+' select කරන්න. ඊළගට 'Restart Project' click කරන්න.

තණකොළ

අපි දැන් මේ හිස් පොළව තණකොළ වලින් පුරවමු. දැන් ඔයාගෙ scene එක පේනවා ඇත්තේ මේ විදියට:
Grass

තණකොළ දාන්න, අපිට ඕන වෙනවා addon එකක්.

AssetLib tab එකට මරු වුනාම මේ විදියට තමයි පේන්නෙ.
(මේ වැඩේට internet ඕන)
Grass

“grass” කියලා search කරාම මෙන්න මේ addon එක පෙන්නාවි.
Grass

ඒ addon එක උඩ click කරලා, Download click කරන්න.
Grass

download වෙන්න වැඩි වෙලාවක් යන එකක් නෑ.
Grass

ඊළගට Install click කරන්න. වෙන මුකුත් settings වෙනස් කරන්න එපා.
Grass

installation එකට පස්සෙ, message එකක් ඒවි හරියට install වුණා කියලා.
FileSystem panel එකේ addons කියලා අලුත් folder එකක් හැදිලා තියෙනවා බලාගන්න පුලුවන්.

Ok click කරල ආයෙ 3D view එකට යන්න.
Grass

මේකට යන්න: Project → Project Settings → Plugins.
අපි install කරපු plugin එක එතන ඇති, ඒත් තාම enabled කරලා නෑ.
Grass

Plugin එක enable කරලා window එක close කරන්න.
Grass

Demo node එක select කරලා Ctrl + A ඔබන්න.
grass කියලා search කරන්න, SimpleGrassTextured node එක හම්බුවේවි.
Create click කරන්න. Grass

Viewport එකේ brush එකක් බලාගන්න පුලුවන්. මේකෙන් ඇදලා තණකොළ paint කරන්න පුලුවන්.
Grass

Bracket keys [] වලින් brush radius එක අඩු වැඩි කරන්න පුලුවන්.
Grass

    • keys වලින් density එක (තණකොළ වල ඝනත්වය) අඩු වැඩි කරන්න පුලුවන්.
      Grass

Radius එකයි density එකයි ගැලපෙන විදියට වෙනස් කරගෙන, ඔයාට පුලුවන් පොළවට තණකොළ paint කරන්න.
WASD keys වලින් viewport එකේ move වෙන්න පුලුවන්.
Viewport movement practice වෙන්නත් එක්ක මේක හොද task එකක්.
Grass

Erase tool එකෙන් තණකොළ අයින් කරන්න පුලුවන්. Shortcut එක X.
Grass

D key එක ඔබලා පුලුවන් airbrush mode එකට ආයෙත් එන්න.
ගැලපෙන brush size පාවිච්චි කරලා වැඩේ ඉක්මනට කරගන්න.
Grass

Erase tool එකෙන් තණකොළ අයින් කරලා පුලුවන් පොඩි පාරවල් වගේ ඒවා හදාගන්න.
Grass

වෙන node එකක් උඩ click කරලා grass painting mode එකෙන් අයින් වෙන්න පුලුවන්.
Grass

දැන් ඔයාට තියෙනවා පොඩි wind animation එකක් එක්ක ලස්සන තණකොළ ටිකක්.
තණකොළ දාන වැඩෙන් ඔයා ඉගෙන ගත්තා කොහොමද addon එකක් පාවිච්චි කරලා ඔයාගෙ වැඩ ලේසියෙන් කරගන්නෙ කියලා. මොකද අපි තණකොළ ගහෙන් ගහ හිටෙව්වේ නෑ, addon එක තමයි වැඩේ ලේසි කරේ.
Grass

Shortcuts 🌾

Brush size: [ ]
Density: + -
Paint mode: D
Erase mode: X

Viewport movement: Right-click + W A S D
Fast movement: move වෙන ගමන් Shift ඔබාගෙන ඉන්න

Addon එකක් කියන්නෙ මොකක්ද? 🧩

Godot වල තියෙන හැකියාවන් වැඩිදියුණු කරන්න හදපු අමතර tools වර්ගයක් තමයි මේ addon කියන්නෙ. හැම දෙයක්ම 0 ඉදන් හදන්නෙ නැතුව, මේවා පාවිච්චි කරලා අපිට පුලුවන් අපේ වැඩ ඉක්මනට, ලේසියෙන් කරගන්න.

වතුර

වතුර හදන්න කලින්; player, map එක, තණකොළ ටික hide කරලා ඉන්න.
Water

MeshInstance3D node එකක් create කරලා ඒකට QuadMesh එකක් assign කරන්න.
Water

මේ විදියෙ එකක් ඒවි. ඒක Water කියලා rename කරන්න.
Water

QuadMesh උඩ click කරලා ඒකෙ sub-properties open කරගන්න.
Water

Orientation එක face Y කියලා වෙනස් කරන්න.
Water

Size එක 500 x 500 වලට ලොකු කරගන්න.
Water

ඊළගට, ඒකෙ Material property එකට ShaderMaterial එකක් add කරන්න.
Water

ආයෙත් ShaderMaterial එක උඩ click කරලා ඒකෙ sub-properties open කරගන්න.
Water

Create a new shader click කරන්න.
Water

හැම දෙයක්ම තියෙන විදියටම තියාගෙන, folder icon එක click කරන්න.
Water

Scripts folder එක තෝරලා ඒකෙ නම water විදියට වෙනස් කරන්න. Open ඔබන්න.
Water

Create ඔබන්න.
Water

ඊළගට, water.gdshader එක උඩ click කරන්න. Shader editor එක යටින් open වෙනවා බලාගන්න පුලුවන් වෙයි.
Water

දැනට තියෙන code එක අයින් කරලා, මෙන්න මේ පහළ තියෙන එක දාගන්න.
Code credits: Toon Water Shader

shader_type spatial;

render_mode unshaded;

uniform float slide_speed = 0.3;
uniform float wobble_speed = 1.0;
uniform float wobble_intensity = 0.4;
uniform float texture_scale = 0.2;
uniform sampler2D water : repeat_enable;
uniform sampler2D depth_texture : source_color, hint_depth_texture;

varying vec2 sample_choord;

void vertex() {

VERTEX.y += sin(TIME * wobble_speed + (VERTEX.x + VERTEX.z) * 0.3) * 0.2;

sample_choord = VERTEX.xz;
}

void fragment() {

vec3 color1 = vec3(1,1,1);
vec3 color2 = texture(
water,
vec2(
(sample_choord.x + sin(TIME * wobble_speed) * wobble_intensity + TIME * slide_speed) * texture_scale,
(sample_choord.y + cos(TIME * wobble_speed * 0.5) * wobble_intensity) * texture_scale
)
).rgb;

float depth = texture(depth_texture, SCREEN_UV).x;
vec3 ndc = vec3(SCREEN_UV * 2.0 - 1.0, depth);
vec4 view = INV_PROJECTION_MATRIX * vec4(ndc, 1.0);
view.xyz /= view.w;
float linear_depth = -view.z;

float object_depth = FRAGCOORD.z;
vec3 object_ndc = vec3(SCREEN_UV * 2.0 - 1.0, object_depth);
vec4 object_view = INV_PROJECTION_MATRIX * vec4(object_ndc, 1.0);
object_view.xyz /= object_view.w;
float linear_object_depth = -object_view.z;

ALBEDO = mix(color1, color2, smoothstep(0.0, 4.0, linear_depth - linear_object_depth)) * 0.5; // Darken by 20%
}

Paste කරාට පස්සෙ, ඔයාට පේනවා ඇති පොඩි animation එකක්.
Water

Shader Parameters යටතේ, water texture එකක් assign කරන්න ඕන.
Water

මම මේකට පාවිච්චි කරන්නෙ මෙන්න මේ water texture එක:
Download link: Y2K Water Texture

Texture එක download කරලා, ඔයාගෙ assets folder එකට දාගන්න.
Water

Water shader slot එකට ඒක drag & drop කරන්න. දැන් පේනවා ඇති stylish water mesh එකක්.
Water

Hide කරපු player, map එක, තණකොළ ආයෙත් visible කරන්න. වතුර වල Y position value එක 2.5ට වෙනස් කරන්න. දැන් වතුර තියෙනවා!
Water

Shader එකක් කියන්නෙ මොකක්ද? 🎨

Shader එකක් කියන්නෙ object එකක පෙනුම මොන විදියද කියලා පාලනය කරන පොඩි program එකක්. ඒකෙන් පුලුවන් object එකක පාට, textures, lighting වල වෙනස්කම් කරන්න. ඒ වගේම වතුර, ගින්දර වගේ visual effects හදන්න.

අහස

ඊළගට තියෙන්නෙ අහසෙ වැඩ.
WorldEnvironment node එක උඩ click කරන්න. ඊළගට Inspector එකේ, Environment කියන property එක click කරන්න, ඊළගට Sky click කරන්න.
Sky

දැනට ඒකෙ තියෙන්නෙ procedural sky එකක්.
අපි ඒකට දාන්න යන්නෙ Panorama Sky එකක්. Panorama Sky select කරන්න.
Sky

ඊළගට මෙන්න මේ වගේ කලුවර වෙයි:
Sky

Panorama Sky material එක උඩ click කරන්න. ඒකට panorama image එකක් ඉල්ලනවා.
Sky

අපිට sky image එකක් ඕන.
මෙන්න මේකෙන් download කරගන්න: Sky Clouds 09 – 2K Resolution Sky

Download කරපු zip file එක extract කරලා,
sky image එක ඔයාගෙ project එකේ assets folder එකට දාගන්න.
Sky

ඊළගට ඒක Panorama slot එකට drag and drop කරන්න.
Sky

දැන් ඔයාට vibrant, stylish අහසක් බලාගන්න පුලුවන්.
Sky

අහසෙ වැඩෙත් හරි!